package plp.functional2.primitive;

import plp.expressions1.util.Tipo;
import plp.expressions2.expression.Valor;
import plp.expressions2.memory.AmbienteCompilacao;
import plp.expressions2.memory.AmbienteExecucao;
import plp.expressions2.memory.ListaValor;
import plp.expressions2.memory.VariavelJaDeclaradaException;
import plp.expressions2.memory.VariavelNaoDeclaradaException;

public class SequenciaPrimitiva implements Primitiva {

        private Primitiva primitiva1;
        private Primitiva primitiva2;

        public SequenciaPrimitiva(Primitiva primitiva1, Primitiva primitiva2) {
                this.primitiva1 = primitiva1;
                this.primitiva2 = primitiva2;
        }

		public boolean checaTipo(AmbienteCompilacao amb)
				throws VariavelNaoDeclaradaException,
				VariavelJaDeclaradaException {
			return true;
		}

		public Valor avaliar(AmbienteExecucao amb)
				throws VariavelNaoDeclaradaException,
				VariavelJaDeclaradaException {
			primitiva1.avaliar(amb);
			Valor valor2 = primitiva2.avaliar(amb);
			return valor2;
		}

		public Tipo getTipo(AmbienteCompilacao amb)
				throws VariavelNaoDeclaradaException,
				VariavelJaDeclaradaException {
			// TODO Auto-generated method stub
			return null;
		}
}